'''
列表：
特点：
可变的，有序的，存放多种数据类型
常用方法：
append()
sort()
pop()
remove()



'''
# 1、列表的创建
# 使用 [] 创建
list_a = []  # 空列表
list_b = [111, 222, 333]  # 存放的同类型元素
list_c = [111, 222, 'hello']  # 存放的不同类型元素
list_d = [111, 222, 'hello', list_c]  # 存放的不同类型元素
print(list_a)
print(list_b)
print(list_c)
print(list_d)

# 使用 list() 方法创建
li_a = list()
li_b = list('hello')
li_c = list([111, 222, 'hello'])
li_d = list(range(5))
print(li_a)
print(li_b)
print(li_c)
print(li_d)

# 案例：
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
print(student_list)

# 2、列的访问
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
#                   0       1       2       3
#                   -4       -3       -2       -1

# 通过下标（索引）访问
print(student_list[3])
print(student_list[-1])

# 通过切片访问
# [start,stop,step] 前闭后开区间
print(student_list[:2])
print(student_list[1:3])
print(student_list[0:3:2])

# for遍历访问
for stu in student_list:
    print(stu)

# 3、列表新增
# append()重点掌握
# extend()
# insert()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_list.append('张炎')
print(student_list)

student_list2 = ['TOM', 'MARY']
student_list.extend(student_list2)
print(student_list)

student_list.insert(0, 'JERRY')
print(student_list)

# 4、列表排序
# sort():重点掌握
# sorted()
# reversed()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']

# sort()
student_list.sort()  # 默认顺序
student_list.sort(reverse=True)  # 逆序
student_list.sort(key=len)  # 按照字符串长度排序 print(len('hello'))
print(student_list)

# sorted()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_new_list = sorted(student_list)
print(student_list)
print(student_new_list)

# reverse()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_list.reverse()  # 逆置列表
print(student_list)

# 5、列表删除
# pop()：重点掌握
# remove()：重点掌握
# clear()
# del

# pop()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_list.pop()
student_list.pop(0)
print(student_list)

# remove()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_list.remove('刘梦丹')
print(student_list)

# clear()
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
student_list.clear()
print(student_list)

# del
student_list = ['刘梦丹', '吴圆', '刘顺', '王家成']
del student_list[0]
print(student_list)

del student_list
# print(student_list)

print('-------------------------')

# 5、列表修改
student_list = ['刘梦丹', '吴圆圆', '刘顺', '王家成']
student_list[1] = '吴圆'
print(student_list)

# 6、其他方法
score_list = [99, 100, 60, 59, 0]
print(max(score_list))
print(min(score_list))
print(len(score_list))  # 重点掌握
print(sum(score_list))

# 7、列表嵌套
list_a = [11, 22, 44, 666, 89]
list_b = [11, 22, 'hello', 666, 89]
list_c = [11, 22, 44, 666, 89]
list_x = [list_a, list_b, list_c]
print(list_x[1][2])
